/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.utils.code.error;

import java.util.ResourceBundle;

import org.apache.commons.lang.StringUtils;

/**
 * @author Holmes Kelly
 */
public enum ConsultationReglementCodeError {

    /**
     *
     */
    CODE_ERROR_FLUIN_IDAPPNUL("FLUIN-IDAPPNUL", "erreur.services.ggs.consult.reglement.fluin.idappnul"),

    /**
     *
     */
    CODE_ERROR_FLUIN_IDAPPKO("FLUIN-IDAPPKO", "erreur.services.ggs.consult.reglement.fluin.idappko"),

    /**
     *
      */
    CODE_ERROR_FLUIN_NUL("FLUIN-NUL", "erreur.services.ggs.consult.reglement.fluin.nul"),

    /**
     *
     */
    CODE_ERROR_FLUIN_ADHNUL("FLUIN-ADHNUL", "erreur.services.ggs.consult.reglement.fluin.adhnul"),

    /**
     *
     */
    CODE_ERROR_FLUIN_IDADHNUL("FLUIN-IDADHNUL", "erreur.services.ggs.consult.reglement.fluin.idadhnul"),

    /**
     *
     */
    CODE_ERROR_FLUIN_IDADHVID("FLUIN-IDADHVID", "erreur.services.ggs.consult.reglement.fluin.idadhvid"),

    /**
     *
     */
    CODE_ERROR_FLUIN_TYPRBTVID("FLUIN-TYPRBTVID", "erreur.services.ggs.consult.reglement.fluin.typrbtvid"),

    /**
     *
     */
    CODE_ERROR_FLUIN_TYPDESINC("FLUIN-TYPDESINC", "erreur.services.ggs.consult.reglement.fluin.typdesinc"),

    /**
     *
     */
    CODE_ERROR_FLUIN_DATINV("FLUIN-DATINV", "erreur.services.ggs.consult.reglement.fluin.datinv"),

    /**
     *
     */
    CODE_ERROR_TRT_DATFORMAT("TRT-DATFORMAT", "erreur.services.ggs.consult.reglement.trt.datformat"),

    /**
     *
     */
    CODE_ERROR_FLUIN_DATDEBANC("FLUIN-DATDEBANC", "erreur.services.ggs.consult.reglement.fluin.datdebanc"),

    /**
     *
     */
    CODE_ERROR_FLUIN_DURPER("FLUIN-DURPER", "erreur.services.ggs.consult.reglement.fluin.durper"),

    /**
     *
     */
    CODE_ERROR_FLUIN_MAXDAT1("FLUIN-MAXDAT1", "erreur.services.ggs.consult.reglement.fluin.maxdat1"),

    /**
     *
     */
    CODE_ERROR_FLUIN_MAXDAT2("FLUIN-MAXDAT2", "erreur.services.ggs.consult.reglement.fluin.maxdat2"),

    /**
     *
     */
    CODE_ERROR_READBDD_PERVIDREF("READBDD-PERVIDREF", "erreur.services.ggs.consult.reglement.readbdd.pervidref"),

    /**
     *
     */
    CODE_ERROR_READBDD_PERVID("READBDD-PERVID", "erreur.services.ggs.consult.reglement.readbdd.pervid"),

    /**
     *
     */
    CODE_ERROR_READBDD_PERNUL("READBDD-PERNUL", "erreur.services.ggs.consult.reglement.readbdd.pernul"),

    /**
     *
     */
    CODE_ERROR_READBDD_DATDERGEN("READBDD-DATDERGEN", "erreur.services.ggs.consult.reglement.readbdd.datdergen"),

    /**
     *
     */
    CODE_ERROR_TRT_DATDERGEN("TRT-DATDERGEN", "erreur.services.ggs.consult.reglement.trt.datdergen"),

    /**
     *
     */
    CODE_ERROR_TRT_EXTREM("TRT-EXTREM", "erreur.services.ggs.consult.reglement.trt.extrem"),

    /**
     *
     */
    CODE_ERROR_TRT_DATDEM("TRT-DATDEM", "erreur.services.ggs.consult.reglement.trt.datdem"),

    /**
     *
     */
    CODE_ERROR_OK("OK", StringUtils.EMPTY);

    /**
     * code error
     */
    private String code;

    /**
     * message error
     */
    private String message;

    /**
     * @param code code error
     * @param message message error
     */
    private ConsultationReglementCodeError(String code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * @return code error
     */
    public String getCode() {
        return code;
    }

    /**
     * @return message error
     */
    public String getMessage() {
        return message;
    }
    
    
    /**
     * @param cle cle message error services
     * @return message
     */
    public static String getMessageErrorService(String cle) {

        ResourceBundle bundle = ResourceBundle.getBundle("fr.generali.accueilclient.erreur-services-business");

        return bundle.getString(cle);
    }

    /**
     * @param cle cle message error services
     * @return message
     */
    public static String getMessageErrorServiceParCode(String codeError) {

        for (ConsultationReglementCodeError reglementCodeError : values()) {

            if (StringUtils.equals(codeError, reglementCodeError.code)) {

                return getMessageErrorService(reglementCodeError.message);
            }
        }

        return StringUtils.EMPTY;
    }

}
